#ifndef _BSP_I2C_H
#define _BSP_I2C_H

struct i2cPortOps{
    void (*i2cPortInit)(void);
    void (*i2cSetSda)(int8_t);
    void (*i2cSetScl)(int8_t);
    void (*i2cModeSwitch)(int8_t);
    int8_t (*i2cGetSda)(void);
    void (*i2cDelay)(uint16_t);
};
typedef struct i2cPortOps i2cPortOps_t;

#ifdef __cplusplus
extern "C"{
#endif

extern void i2cInit(void);
extern void i2cStart(void);
extern void i2cStop(void);
extern uint8_t i2cWaitAck(void);
extern void i2cWriteByte(uint8_t date);
extern uint8_t i2cReadByte(uint8_t ack);

#ifdef __cplusplus
}
#endif

#endif
